package cn.edu.sgu.www.mhxysy.service.qiling;

import cn.edu.sgu.www.mhxysy.dto.qiling.QilingAttributeDTO;
import cn.edu.sgu.www.mhxysy.entity.qiling.QilingAttribute;
import cn.edu.sgu.www.mhxysy.vo.except.AttributeVO;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

/**
 * @author 沐雨橙风ιε
 * @version 1.0
 */
public interface QilingAttributeService {

	/**
	 * 一键分配器灵属性
	 * @param qilingId 器灵id
	 */
	@Transactional(rollbackFor = Exception.class)
	void allocate(String qilingId);

	/**
	 * 添加器灵属性
	 * @param qilingAttributeDTO 器灵属性信息
	 */
	void insert(QilingAttributeDTO qilingAttributeDTO);

	/**
	 * 通过id删除器灵属性
	 * @param id 器灵属性id
	 */
	void deleteById(String id);

	/**
	 * 通过id修改器灵属性
	 * @param qilingAttributeDTO 器灵属性信息
	 */
	void updateById(QilingAttributeDTO qilingAttributeDTO);

	/**
	 * 通过器灵ID查询器灵属性
	 * @param qilingId 器灵ID
	 * @return List<AttributeVO>
	 */
	List<AttributeVO> selectAttributes(String qilingId);

	/**
	 * 通过器灵ID查询器灵属性
	 * @param qilingId 器灵ID
	 * @return List<QilingAttribute>
	 */
	List<QilingAttribute> selectByQilingId(String qilingId);
}